1. Field of the Invention
This application relates to a graphical user interface custom control which allows both automatic data input from a bar code reader or other like automatic data entry device as well as text input manually entered by an operator.
2. Description of the Prior Art.
Many computer application programs such as those used in data collection, inventory control, databases, word processors, spreadsheets and the like employ graphical user interfaces (GUIs) which render the use of the application "user friendly." A graphical user interface provides simple interactive tools for the input, manipulation and display of data as well as program execution control through the use of windows, icons, menus, tool bars, scroll bars, command buttons, option buttons, text input boxes, dialog boxes and the like. By providing a graphical user interface, the applications developer enables the operator to run the application intuitively and with minimal or no training.
Standard development tools exist which facilitate the development of graphical user interface applications. Using a typical forms-based GUI design tool, a GUI application is divided into screens called forms which represent the major subdivisions of the user interface. Each form is composed of objects or controls with associated fields which allow data entry by the operator, display data from the program, provide instructions to the operator, allow operator control of the program, and the like. Types of controls available in commercially available GUI development tools include text boxes for alphanumeric data entry by the operator, check boxes for yes/no data entry by the operator, option buttons for choice selection by the operator, command buttons to facilitate predefined event procedures, object frames for display of a graphical object to the operator, and labels for displaying information on the form such as operator instructions.
Each control type is defined by a particular subset of properties taken from a set of standard properties which are common o all control types. Property values determine the look and behavior of the control. For Example, every control has a control name property, a control type property, and a caption property. In addition, certain control types have may have unique properties not used by other control types.
Applications developers implement their programs by selecting controls from a menu of control types and placing the control in the desired location on the form. The properties associated with the control type select are then defined by the developer in order for the control to behave in the desired fashion. Each control type is implemented by a code module that defines the behavior for that control type which can be adjusted by setting the values of the properties defined for that control type. For example, a text box control type accepts data input into its associated field from the keyboard. In a calculator application, a text box allows the operator to enter numbers from the keyboard for subsequent arithmetic computation. Other types of controls execute specified routines when selected. Thus, in the calculator application, the operator would use a pointing device such as a mouse to select a command button labeled ENTER, which calls a subroutine to calculate a certain arithmetic operation on the previously input data values.
By using predefined control types, an operator can learn to use different graphical user interfaces quickly since they appear to operate in the same fashion. That is, a command button will appear the same to the operator on different applications, and the operator will expect it to operate in the same fashion regardless of the particular application. A prime example of this are programs written for operation in the Microsoft Corp. WINDOWS environment, where different programs have similar elements such as pull-down menus, window size control buttons, help menus and dialog boxes which operate in a similar fashion in all applications.
It is desired to be able to develop such graphical user interfaces for use in applications associated with data terminals and similar devices having automatic data input capabilities such as bar code scanning. Data terminals have many applications where an operator desires to collect data either by keyboard entry or by automatic entry such as by scanning a bar code resident on a parcel package, product label, shelf tag or the like. In particular, it is desired to be able to allow the operator to have the option of either scanning a bar code with the target data encoded therein, or to enter data directly into the application if the bar code is damaged and unreadable. By providing a graphical user interface which allows both manual keyboard data entry as well as automatic bar code scanning data entry into the same field, data terminal operators can benefit from the user-friendliness and intuitive features of such graphical user interfaces.
Programmers who desire to implement automatic data entry such as bar code scanning with manual data entry into a single application have been heretofore constrained to develop routines and code on case by case basis, which is time consuming, tedious, and costly. Most often, the application so developed was different every time, so that operators always had to re-learn each new application.
It is therefore desired to furnish applications developers with a standard methodology in an applications development environment for integrating such bar code input capabilities in a convenient manner as is currently available with other features of graphical user interfaces.
It is therefore an object of the present invention to provide a custom control for a graphical user interface which is scan-aware in that it facilitates the input of text data into the field by either manual keyboard input or by an automatic bar code reading device.
It is a further object of the present invention to provide such a scan-aware custom control which operates in an intuitive fashion so as to enable an operator to use it with little or no instruction.
It is a further object of the present invention to provide such a custom control which integrates with existing applications development environments and which operates in a similar fashion to existing standard controls so as to be easily implemented by an applications developer.